/* $Header: recovery_ui.c,v 2.2 01/10/02 10:32:26 przybyls Exp $ */

/***********************************************************************/
/*                                                                     */
/*                  Copyright Hewlett-Packard Co. 1991                 */
/*                                                                     */
/***********************************************************************/

/***********************************************************************/
/* MODULE NAME: recovery_ui.c                                          */
/* ============                                                        */
/*                                                                     */
/* Author:  Tom Przybylski                                             */
/*                                                                     */
/* MODULE PURPOSE: Functions for power fail restart of oven.  Also     */
/*                 used by method load.                                */
/*                                                                     */
/*                                                                     */
/***********************************************************************/


/*****************************/
/*   GLOBAL INCLUDE FILES    */
/*****************************/


#include <typedefs.h>
#include <p_wkfile.h>
#include <wkfile.h>
#include <ramps.h>
#include <zone_config.h>
#include <zone_status.h>
#include <status.h>
#include <error.h>
#include <exception.h>
#include <err_handler.h>
#include <readiness.h>
#include <recovery_ui.h>
#include <zone_ui.h>


/*****************************/
/*   LOCAL INCLUDE FILES     */
/*****************************/


/*****************************/
/*   GLOBAL VARIABLES        */
/*****************************/


/*****************************/
/*   EXTERNAL VARIABLES      */
/*****************************/


/*****************************/
/*   LOCAL DEFINES           */
/*****************************/


/*****************************/
/*   STATIC VARIABLES        */
/*****************************/


/*****************************/
/*   IMPLEMENT SECTION       */
/*****************************/


/***********************************************************************/
/* FUNCTION:                                                           */
/* ========                                                            */
/*                                                                     */
/* PURPOSE:                                                            */
/*                                                                     */
/* RETURNED VALUE:                                                     */
/*                                                                     */
/***********************************************************************/

RECOVERY_STATE GetPowerFailRecovery (void)
{
   return Recovery_State;
}


/***********************************************************************/
/* FUNCTION:                                                           */
/* ========                                                            */
/*                                                                     */
/* PURPOSE:                                                            */
/*                                                                     */
/* RETURNED VALUE:                                                     */
/*                                                                     */
/***********************************************************************/

BIT8  InOvenHoldOff (void)
{
   return Oven_Holdoff;
}

void ClearOvenHoldOff (void)
{
   Oven_Holdoff = FALSE;
}


/***********************************************************************/
/* FUNCTION:                                                           */
/* ========                                                            */
/*                                                                     */
/* PURPOSE:                                                            */
/*                                                                     */
/* RETURNED VALUE:                                                     */
/*                                                                     */
/***********************************************************************/

UI_ERR StartOvenHoldOff (void)
{
   UI_ERR err;

   if ((err = SetOvenHoldOff(ON)) == OK)
   {
      Oven_Holdoff = TRUE;
      ClearNotReadyEval();   /* prevent race condition on readiness */
   }

   return err;
}


/***********************************************************************/
/* FUNCTION:                                                           */
/* ========                                                            */
/*                                                                     */
/* PURPOSE:                                                            */
/*                                                                     */
/* RETURNED VALUE:                                                     */
/*                                                                     */
/***********************************************************************/

void EndOvenHoldOff (void)
{
   ClearOvenHoldOff();
   (void) SetOvenHoldOff (OFF);
}


/***********************************************************************/
/* FUNCTION:                                                           */
/* ========                                                            */
/*                                                                     */
/* PURPOSE:                                                            */
/*                                                                     */
/* RETURNED VALUE:                                                     */
/*                                                                     */
/***********************************************************************/

void HandleOvenHoldOff (void)
{
   if (InOvenHoldOff())
   {
      if (ReadyHoldOffEval() == (READY_STATE) TRUE) /* MUST compare to TRUE, UNKNOWN possible */
      {
         EndOvenHoldOff();
      }
   }
}
